package de.uni.muenster.idw2.location.bluetooth.service;

import java.util.List;

import de.uni.muenster.idw2.location.bluetooth.service.fingerprinting.core.DeficientDataException;

/**
 * This interface is the interface of the different algorithms for positioning.
 * 
 * @author lrodriguez
 *
 */
public interface IComputeLocation 
{
   /**
    * Sets the known floor where the person is standing.
    * 
    * @param floor The floor.
 	*/
	void setKnownFloor(int floor);	

   /**
    * Computes the position and accuracy.
    * 
    * @param deviceDataList The measured data (i.e received dongles signal strengths).
 	* @return The computed position and accuracy.
 	* @throws DeficientDataException If there is not enough data to determine the position.
 	*/
   WGS84Position computeLocation(List<BluetoothDeviceData> deviceDataList) throws DeficientDataException;
}
